package edu.neu.ecommerceplatform.model;

import java.math.BigDecimal;
import java.sql.Timestamp;

public class Order {
    private Integer id;
    private Integer customerId;
    private Integer productId;
    private Integer addressId;
    private String status;
    private Timestamp orderDate;
    private BigDecimal subtotalAmount;
    private BigDecimal shippingFee;
    private BigDecimal discountAmount;
    private BigDecimal totalAmount;

    public Order() {
    }

    public Order(Integer id, Integer customerId, Integer productId, Integer addressId, String status, Timestamp orderDate, BigDecimal subtotalAmount, BigDecimal shippingFee, BigDecimal discountAmount, BigDecimal totalAmount) {
        this.id = id;
        this.customerId = customerId;
        this.productId = productId;
        this.addressId = addressId;
        this.status = status;
        this.orderDate = orderDate;
        this.subtotalAmount = subtotalAmount;
        this.shippingFee = shippingFee;
        this.discountAmount = discountAmount;
        this.totalAmount = totalAmount;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Integer customerId) {
        this.customerId = customerId;
    }

    public Integer getProductId() {
        return productId;
    }

    public void setProductId(Integer productId) {
        this.productId = productId;
    }

    public Integer getAddressId() {
        return addressId;
    }

    public void setAddressId(Integer addressId) {
        this.addressId = addressId;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Timestamp getOrderDate() {
        return orderDate;
    }

    public void setOrderDate(Timestamp orderDate) {
        this.orderDate = orderDate;
    }

    public BigDecimal getSubtotalAmount() {
        return subtotalAmount;
    }

    public void setSubtotalAmount(BigDecimal subtotalAmount) {
        this.subtotalAmount = subtotalAmount;
    }

    public BigDecimal getShippingFee() {
        return shippingFee;
    }

    public void setShippingFee(BigDecimal shippingFee) {
        this.shippingFee = shippingFee;
    }

    public BigDecimal getDiscountAmount() {
        return discountAmount;
    }

    public void setDiscountAmount(BigDecimal discountAmount) {
        this.discountAmount = discountAmount;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    @Override
    public String toString() {
        return "Order{" +
                "id=" + id +
                ", customerId=" + customerId +
                ", productId=" + productId +
                ", addressId=" + addressId +
                ", status='" + status + '\'' +
                ", orderDate=" + orderDate +
                ", subtotalAmount=" + subtotalAmount +
                ", shippingFee=" + shippingFee +
                ", discountAmount=" + discountAmount +
                ", totalAmount=" + totalAmount +
                '}';
    }
} 